home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_c24.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
62KB
|
2,717 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_c.h"
/*No:RENAME_PAIR.new_name*/
/*No:RENAME_PAIR.old_name*/
void r88make(T88* C,T0* a1,T0* a2){
/*[IF*/
if((X83to_string(a1))==((void*)(X83to_string(a2)))){
r21add_position(X83start_position(a1));
r21add_position(X83start_position(a2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms88_91800);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
C->_old_name=a1;
C->_new_name=a2;
}
/*No:RENAME_PAIR.fatal_error*/
/*No:FROZEN_FEATURE_NAME.is_frozen*/
/*No:FROZEN_FEATURE_NAME.feature_name*/
void r315undefine_in(T315* C,T0* a1){
/*[IF*/
{/*AT*/r315error(r315start_position(C),((T0*)ms83_117530));
r63fatal_undefine(((T63*)a1),(T0*)C);
}
/*FI]*/
}
T0* r315origin_base_class(T315* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=r315start_position(C);
/*[IF*/
if((_sp)!=((void*)(NULL))){
R=r70base_class(((T70*)_sp));
}
/*FI]*/
return R;
}
T0* r315start_position(T315* C){
T0* R=NULL;
R=X83start_position((C)->_feature_name/*4*/);
return R;
}
T0* r315to_string(T315* C){
T0* R=NULL;
R=X83to_string((C)->_feature_name/*4*/);
return R;
}
void r315put_cpp_tag(T315* C){
X83put_cpp_tag((C)->_feature_name/*4*/);
}
void r315declaration_in(T315* C,T0* a1){
X83declaration_in((C)->_feature_name/*4*/,a1);
}
T0* r315to_key(T315* C){
T0* R=NULL;
R=X83to_key((C)->_feature_name/*4*/);
return R;
}
T0* r315name_in(T315* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
_bc=r315origin_base_class(C);
/*[IF*/
if((_bc)==((void*)(a1))){
R=(T0*)C;
}
else{
R=r63new_name_of(((T63*)a1),_bc,(T0*)C);
}
/*FI]*/
return R;
}
void r315error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:FROZEN_FEATURE_NAME.make*/
/*No:FROZEN_FEATURE_NAME.mapping_c_in*/
/*No:STD_OUTPUT.flush*/
void r29put_double_format(T29* C,T5 a1,T2 a2){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC30tmp_string))))->_count)=(0);
/*]*/
r5append_in_format(a1,oBC30tmp_string,a2);
r29put_string(C,oBC30tmp_string);
}
void r29put_string(T29* C,T0* a1){
T2 _i=0;
_i=1;
while (!((_i)>((((T7*)a1))->_count/*4*/))) {
/*[IRF3.6put_character*/{T29* C1=C;
T3 b1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/;
putc(b1,((FILE*)(stdout)));
}/*]*/
_i=(_i)+(1);
}
}
/*No:STD_OUTPUT.make*/
/*No:STD_OUTPUT.put_character*/
T0*oBC30tmp_string=NULL;
void r29put_integer(T29* C,T2 a1){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC30tmp_string))))->_count)=(0);
/*]*/
r2append_in(a1,oBC30tmp_string);
r29put_string(C,oBC30tmp_string);
}
/*No:LOOP_VARIANT_2.nb_errors*/
/*No:LOOP_VARIANT_2.tag*/
T0* r245start_position(T245* C){
T0* R=NULL;
R=X56start_position((C)->_expression/*8*/);
return R;
}
T0* r245twin(T245* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T245*)R)=*C;
return R;
}
/*No:LOOP_VARIANT_2.expression*/
T6 r245use_current(T245* C){
T6 R=0;
R=X56use_current((C)->_expression/*8*/);
return R;
}
T0* r245to_runnable(T245* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*[IF*/
if(((C)->_current_type/*12*/)==((void*)(NULL))){
C->_current_type=a1;
_e=X56to_runnable((C)->_expression/*8*/,a1);
/*[IF*/
if((_e)==((void*)(NULL))){
r245error(r245start_position(C),((T0*)ms242_20400));
}
else{
C->_expression=_e;
/*[IF*/
if(!(X54is_integer(X56result_type((C)->_expression/*8*/)))){
r245error(X56start_position((C)->_expression/*8*/),((T0*)ms242_86602));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
R=(T0*)C;
}
/*FI]*/
}
else{
R=r245twin(C);
/*[IRF3.3set_current_type*/((((T245*)(((T245*)R))))->_current_type)=(NULL);
/*]*/
R=r245to_runnable(((T245*)R),a1);
}
/*FI]*/
return R;
}
/*No:LOOP_VARIANT_2.set_current_type*/
/*No:LOOP_VARIANT_2.current_type*/
void r245error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r245make(T245* C,T0* a1,T0* a2,T0* a3){
C->_comment=a3;
C->_tag=a1;
C->_expression=a2;
}
/*No:LOOP_VARIANT_2.comment*/
void r245afd_check(T245* C){
X56afd_check((C)->_expression/*8*/);
}
/*No:CALL_INFIX_EQ.feature_name*/
/*No:CALL_INFIX_EQ.finalize*/
T6 r130is_static(T130* C){
T6 R=0;
/*[IF*/
if(X56is_void((C)->_target/*4*/)){
R=r130is_static_eq_void(r130arg1(C));
}
else if(X56is_void(r130arg1(C))){
R=r130is_static_eq_void((C)->_target/*4*/);
}
else if((X56is_static((C)->_target/*4*/))&&(X56is_static(r130arg1(C)))){
R=1;
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_EQ.is_manifest_string*/
T0* r130start_position(T130* C){
T0* R=NULL;
R=((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
void r130error_comparison(T130* C,T0* a1,T0* a2){
r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms129_9960);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms129_88736);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type(a2,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*No:CALL_INFIX_EQ.c_simple*/
/*No:CALL_INFIX_EQ.fz_c_eq*/
T0* r130add_comment(T130* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r130to_integer(T130* C){
T2 R=0;
r130error(r130start_position(C),((T0*)ms13_45846));
return R;
}
T6 r130use_current(T130* C){
T6 R=0;
R=(X56use_current((C)->_target/*4*/))||(X56use_current(r130arg1(C)));
return R;
}
T0* r130to_runnable(T130* C,T0* a1){
T0* R=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r130runnable_expression((C)->_target/*4*/,a1);
_a=r130runnable_args((C)->_arguments/*8*/,a1);
/*[IF*/
if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T130*n=malloc(sizeof(*n));
*n=M130;
r130with(n,_t,(C)->_feature_name/*12*/,_a);
R=(T0*)n;
}
}
/*FI]*/
r130check_comparison(((T130*)R),a1);
return R;
}
T6 r130is_static_eq_void(T0* a1){
T6 R=0;
T0* _rt=NULL;
/*[IF*/
if(X56is_current(a1)){
R=1;
}
else if(X56is_manifest_string(a1)){
R=1;
}
else if(r130is_manifest_array(a1)){
R=1;
}
else{
_rt=X54run_type(X56result_type(a1));
/*[IF*/
if(X54is_expanded(_rt)){
/*[IF*/
if(X56can_be_dropped(a1)){
R=1;
}
/*FI]*/
}
else if(X56is_static(a1)){
/*[IF*/
if((X56static_value(a1))==(0)){
R=1;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r130cmp_basic_eiffel_expanded(T130* C,T6 a1,T0* a2,T0* a3){
T6 _flag=0;
_flag=(X54is_real(a2))||(X54is_real(a3));
/*[IF*/
if(_flag){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms129_6984));
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X56compile_to_c((C)->_target/*4*/);
/*[IF*/
if(_flag){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_170));
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(a1){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_250));
/*]*/
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_194a));
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(_flag){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms129_6984));
/*]*/
}
/*FI]*/
X56compile_to_c(r130arg1(C));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(_flag){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_170));
/*]*/
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.result_type*/
void r130check_comparison(T130* C,T0* a1){
T0* _at=NULL;
T0* _tt=NULL;
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
_tt=X54run_type(X56result_type((C)->_target/*4*/));
_at=X54run_type(X56result_type(r130arg1(C)));
/*[IF*/
if(X54is_none(_tt)){
/*[IF*/
if(X54is_expanded(_at)){
X54used_as_reference(_at);
}
/*FI]*/
}
else if(X54is_none(_at)){
/*[IF*/
if(X54is_expanded(_tt)){
X54used_as_reference(_tt);
}
/*FI]*/
}
else if(X54is_reference(_tt)){
/*[IF*/
if(X54is_reference(_at)){
/*[IF*/
if(X54is_a(_tt,_at)){
}
else{
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(X54is_a(_at,_tt)){
}
else{
r130error_comparison(C,((T0*)ms129_46246),a1);
}
/*FI]*/
}
/*FI]*/
}
else if(!(X54is_a(_at,_tt))){
r130error_comparison(C,((T0*)ms129_41670),a1);
}
else{
X54used_as_reference(_at);
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_expanded(_at)){
/*[IF*/
if(X54is_basic_eiffel_expanded(_at)){
/*[IF*/
if(X54is_a(_tt,_at)){
}
else{
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(X54is_a(_at,_tt)){
}
else{
r130error_comparison(C,((T0*)ms129_37791),a1);
}
/*FI]*/
}
/*FI]*/
}
else if(X54is_bit(_tt)){
r130bit_limitation(C,_tt,_at);
}
else if(!(X54is_a(_at,_tt))){
r130error_comparison(C,((T0*)ms129_37791a),a1);
}
/*FI]*/
}
else if(!(X54is_a(_tt,_at))){
r130error_comparison(C,((T0*)ms129_42138),a1);
}
else{
X54used_as_reference(_tt);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.us_eq*/
/*No:CALL_INFIX_EQ.is_result*/
/*No:CALL_INFIX_EQ.fatal_error*/
void r130mapping_c_target(T130* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_actual_type=X54run_type(/*(IRF4.8result_type*/r130type_boolean()/*)*/);
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
X54mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r130compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r130compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r130compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r130compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
r130compile_to_c(C);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.fz_cast_void_star*/
/*No:CALL_INFIX_EQ.arguments*/
T0* r130runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X56to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X56start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r130c2c_exp_ref(T0* a1,T0* a2,T0* a3,T0* a4){
/*[IF*/
if(X56is_void(a3)){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_166a));
/*]*/
X56compile_to_c(a1);
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_166a));
/*]*/
X56compile_to_c(a1);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_393));
/*]*/
X56compile_to_c(a3);
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms130_736));
/*]*/
}
/*No:CALL_INFIX_EQ.dca_inline_argument*/
void r130compile_to_c(T130* C){
T0* _at=NULL;
T0* _tt=NULL;
_tt=X54run_type(X56result_type((C)->_target/*4*/));
_at=X54run_type(X56result_type(r130arg1(C)));
/*[IF*/
if(X54is_expanded(_tt)){
/*[IF*/
if(X54is_expanded(_at)){
/*[IF*/
if(X54is_user_expanded(_tt)){
r130cmp_user_expanded(C,1,_tt);
}
else if(X54is_basic_eiffel_expanded(_tt)){
r130cmp_basic_eiffel_expanded(C,1,_at,_tt);
}
else if(X54is_bit(_tt)){
r130cmp_bit(C,1,_tt);
}
else{
r130cmp_basic_ref(C,1);
}
/*FI]*/
}
else{
r130c2c_exp_ref((C)->_target/*4*/,_tt,r130arg1(C),_at);
}
/*FI]*/
}
else if(X54is_expanded(_at)){
r130c2c_exp_ref(r130arg1(C),_at,(C)->_target/*4*/,_tt);
}
else{
r130cmp_basic_ref(C,1);
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.isa_dca_inline_argument*/
/*No:CALL_INFIX_EQ.fz_dot*/
/*No:CALL_INFIX_EQ.target*/
void r130error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r130make(T130* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T138*n=malloc(sizeof(*n));
*n=M138;
r138make(n,r130operator(),a2);
C->_feature_name=(T0*)n;
}
{T149*n=malloc(sizeof(*n));
*n=M149;
/*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
void r130cmp_bit(T130* C,T6 a1,T0* a2){
T0* _tb=NULL;
_tb=a2;
if(NULL!=(_tb))switch(((T0*)_tb)->id) {
case 276: case 277:
break;
default:
_tb=NULL;
};/*[IF*/
if(X53is_c_unsigned_ptr(_tb)){
/*[IF*/
if(a1){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\41';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms129_6896));
/*]*/
X56mapping_c_arg((C)->_target/*4*/,a2);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_393));
/*]*/
X56mapping_c_arg(r130arg1(C),a2);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms129_176));
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X53space_for_variable(_tb));
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms129_42));
/*]*/
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X56compile_to_c((C)->_target/*4*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(a1){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_250));
/*]*/
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_194a));
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X56compile_to_c(r130arg1(C));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.is_current*/
T0* r130operator(void){
T0* R=NULL;
R=((T0*)ms14_62);
return R;
}
void r130cmp_user_expanded(T130* C,T6 a1,T0* a2){
T2 _mem_id=0;
/*[IF*/
if(X54is_dummy_expanded(a2)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X56compile_to_c((C)->_target/*4*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X56compile_to_c(r130arg1(C));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(a1){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='1';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='0';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
_mem_id=X54id(a2);
/*[IF*/
if(a1){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\41';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_7854));
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),_mem_id);
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_166a));
/*]*/
X56compile_to_c((C)->_target/*4*/);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_393));
/*]*/
X56compile_to_c(r130arg1(C));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_170));
/*]*/
}
/*FI]*/
}
void r130afd_check(T130* C){
X56afd_check((C)->_target/*4*/);
X56afd_check(r130arg1(C));
}
T2 r130static_value(T130* C){
T2 R=0;
/*[IF*/
if(X56is_void((C)->_target/*4*/)){
R=r130static_eq_void(r130arg1(C));
}
else if(X56is_void(r130arg1(C))){
R=r130static_eq_void((C)->_target/*4*/);
}
else if((X56is_static((C)->_target/*4*/))&&(X56is_static(r130arg1(C)))){
/*[IF*/
if((X56static_value((C)->_target/*4*/))==(X56static_value(r130arg1(C)))){
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_EQ.fz_se_cmpt*/
T2 r130static_eq_void(T0* a1){
T2 R=0;
T0* _rt=NULL;
/*[IF*/
if(X56is_current(a1)){
}
else if(X56is_manifest_string(a1)){
}
else if(r130is_manifest_array(a1)){
}
else{
_rt=X54run_type(X56result_type(a1));
/*[IF*/
if(X54is_expanded(_rt)){
/*[IF*/
if(X56can_be_dropped(a1)){
R=0;
}
/*FI]*/
}
else if(X56is_static(a1)){
/*[IF*/
if((X56static_value(a1))==(0)){
R=1;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r130dca_inline(T130* C,T0* a1){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r25put_target_as_value((T25*)(oBC12cpp));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if((/*(IRF4.5first*//*(IRF4.6item*/(((T7*)(r130operator()))->_storage/*0*/)[(1)-(1)]/*)*//*)*/)==('\75')){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_250));
/*]*/
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_194a));
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X56dca_inline_argument(r130arg1(C),a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*No:CALL_INFIX_EQ.fz_20*/
void r130compile_to_c_old(T130* C){
X56compile_to_c_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.is_pre_computable*/
/*No:CALL_INFIX_EQ.fz_bad_argument*/
void r130collect_c_tmp(T130* C){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
X56collect_c_tmp((C)->_target/*4*/);
/*[IF*/
if(((C)->_arguments/*8*/)!=((void*)(NULL))){
X149collect_c_tmp((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.fz_iinaiv*/
/*No:CALL_INFIX_EQ.fz_13*/
/*No:CALL_INFIX_EQ.run_feature*/
T0* r130runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=X149to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X149start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_EQ.fz_17*/
void r130bit_limitation(T130* C,T0* a1,T0* a2){
T0* _b2=NULL;
T0* _b1=NULL;
_b1=a1;
if(NULL!=(_b1))switch(((T0*)_b1)->id) {
case 276: case 277:
break;
default:
_b1=NULL;
};_b2=a2;
if(NULL!=(_b2))switch(((T0*)_b2)->id) {
case 276: case 277:
break;
default:
_b2=NULL;
};/*[IF*/
if((X53nb(_b1))!=(X53nb(_b2))){
r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms129_21261);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type(_b1,((T0*)ms129_1930));
r21add_type(_b2,((T0*)ms129_383757));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.arg_count*/
void r130with(T130* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
int fBC12type_boolean=0;
T0*oBC12type_boolean=NULL;
T0* r130type_boolean(void){
if(fBC12type_boolean==0){
fBC12type_boolean=1;
{T264*n=malloc(sizeof(*n));
*n=M264;
r264make(n,NULL);
oBC12type_boolean=(T0*)n;
}
}
return oBC12type_boolean;}
/*No:CALL_INFIX_EQ.nb_errors*/
void r130cmp_basic_ref(T130* C,T6 a1){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X56compile_to_c((C)->_target/*4*/);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(a1){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_250));
/*]*/
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_194a));
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_5432));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X56compile_to_c(r130arg1(C));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*No:CALL_INFIX_EQ.can_be_dropped*/
T6 r130is_manifest_array(T0* a1){
T6 R=0;
T0* _ma=NULL;
_ma=a1;
if(NULL!=(_ma))switch(((T0*)_ma)->id) {
case 110:
break;
default:
_ma=NULL;
};R=(_ma)!=((void*)(NULL));
return R;
}
void r130c_declare_for_old(T130* C){
X56c_declare_for_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.fz_c_neq*/
T0* r130arg1(T130* C){
T0* R=NULL;
R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
return R;
}
void r130mapping_c_arg(T130* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X54run_type(/*(IRF4.8result_type*/r130type_boolean()/*)*/);
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
r130compile_to_c(C);
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r130compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r130compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r130compile_to_c(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
r130compile_to_c(C);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.is_void*/
/*No:CALL_INFIX_EQ.fz_cast_float*/
/*No:CALL_INFIX_AND.static_value*/
/*No:CALL_INFIX_AND.call_proc_call_c2c*/
/*No:CALL_INFIX_AND.feature_name*/
void r122finalize(T122* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(C)->_run_feature/*16*/;
_rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
}
T6 r122is_static(T122* C){
T6 R=0;
/*[IF*/
if(X54is_boolean(X56result_type((C)->_target/*4*/))){
/*[IF*/
if((X56is_static((C)->_target/*4*/))&&(X56is_static(r122arg1(C)))){
R=1;
C->_static_value_mem=(X56static_value((C)->_target/*4*/))+(X56static_value(r122arg1(C)));
/*[IF*/
if(((C)->_static_value_mem/*20*/)==(2)){
C->_static_value_mem=1;
}
else{
C->_static_value_mem=0;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.is_manifest_string*/
T0* r122start_position(T122* C){
T0* R=NULL;
R=((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
/*No:CALL_INFIX_AND.c_simple*/
T0* r122add_comment(T122* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r122to_integer(T122* C){
T2 R=0;
r122error(r122start_position(C),((T0*)ms13_45846));
return R;
}
T6 r122use_current(T122* C){
T6 R=0;
/*[IF*/
{/*AT*/R=X149use_current((C)->_arguments/*8*/);
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X56is_current((C)->_target/*4*/)){
R=X51use_current((C)->_run_feature/*16*/);
}
else{
R=X56use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
T0* r122to_runnable(T122* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r122runnable_expression((C)->_target/*4*/,a1);
_a=r122runnable_args((C)->_arguments/*8*/,a1);
_tt=X56result_type(_t);
_at=X56result_type(r122arg1(C));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r122run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r122run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T122*n=malloc(sizeof(*n));
*n=M122;
r122with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
void r122compile_to_c_old(T122* C){
X56compile_to_c_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_AND.is_pre_computable*/
/*No:CALL_INFIX_AND.fz_bad_argument*/
void r122collect_c_tmp(T122* C){
/*[IF*/
if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
X51collect_c_tmp((C)->_run_feature/*16*/);
}
/*FI]*/
X56collect_c_tmp((C)->_target/*4*/);
/*[IF*/
if(((C)->_arguments/*8*/)!=((void*)(NULL))){
X149collect_c_tmp((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_AND.fz_iinaiv*/
T0* r122result_type(T122* C){
T0* R=NULL;
T0* _tla=NULL;
R=X51result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X54is_like_current(R)){
R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 258:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X54run_type(X56result_type(r122arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.static_value_mem*/
/*No:CALL_INFIX_AND.run_feature*/
T0* r122runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=X149to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X149start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.fz_07*/
/*No:CALL_INFIX_AND.arg_count*/
void r122with(T122* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r122run_feature_match(C,a5);
}
/*No:CALL_INFIX_AND.is_result*/
/*No:CALL_INFIX_AND.fatal_error*/
void r122mapping_c_target(T122* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_actual_type=X54run_type(r122result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
X54mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
void r122run_feature_match(T122* C,T0* a1){
r122run_feature_has_result(C);
X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_AND.arguments*/
T0* r122runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X56to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X56start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.can_be_dropped*/
void r122c_declare_for_old(T122* C){
X56c_declare_for_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_AND.implicit_cast*/
/*No:CALL_INFIX_AND.dca_inline_argument*/
/*No:CALL_INFIX_AND.compile_to_c*/
/*No:CALL_INFIX_AND.isa_dca_inline_argument*/
T0* r122arg1(T122* C){
T0* R=NULL;
R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
return R;
}
void r122run_feature_has_result(T122* C){
/*[IF*/
if((X51result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X51start_position((C)->_run_feature/*16*/));
r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T0* r122run_feature_for(T122* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type(a1));
R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_AND.target*/
void r122error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r122make(T122* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T138*n=malloc(sizeof(*n));
*n=M138;
r138make(n,r122operator(),a2);
C->_feature_name=(T0*)n;
}
{T149*n=malloc(sizeof(*n));
*n=M149;
/*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_AND.is_current*/
void r122mapping_c_arg(T122* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X54run_type(r122result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T122* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_AND.is_void*/
/*No:CALL_INFIX_AND.us_and*/
T0* r122operator(void){
T0* R=NULL;
R=((T0*)ms14_939);
return R;
}
void r122afd_check(T122* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type((C)->_target/*4*/));
_running=(((T24*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X56start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r24set_at_run_time(((T24*)_rc));
}
else if((r328count(((T328*)_running)))>(1)){
r331update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X56afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149afd_check((C)->_arguments/*8*/);
}
/*FI]*/
}
void r332c_switch(T0* a1){
T0* _dyn_rf=NULL;
T0* _dyn_rc=NULL;
T2 _i=0;
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_8268));
/*]*/
_i=1;
while (!((_i)>(((T328*)(oBC332running))->_upper/*8*/))) {
_dyn_rc=r328item((T328*)(oBC332running),_i);
_dyn_rf=r24dynamic(((T24*)_dyn_rc),a1);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_2295));
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),(((T24*)_dyn_rc))->_id/*4*/);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\72';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r332tail_opening(X51result_type(a1),X51result_type(_dyn_rf));
r25push_switch((T25*)(oBC12cpp),_dyn_rf,a1);
X51mapping_c(_dyn_rf);
r25pop((T25*)(oBC12cpp));
r332tail_closing(X51result_type(a1),X51result_type(_dyn_rf));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_4120));
/*]*/
_i=(_i)+(1);
}
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_20592));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
/*]*/
}
void r332c_define(int C,T0* a1){
T2 _i=0;
T0* _arg_type=NULL;
T0* _result_type=NULL;
T0* _arguments=NULL;
T6 _boost=0;
_boost=r43boost((T43*)(oBC12run_control));
_arguments=X51arguments(a1);
_result_type=X51result_type(a1);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC332c_code))))->_count)=(0);
/*]*/
/*[IF*/
if((_result_type)==((void*)(NULL))){
r7append((T7*)(oBC332c_code),((T0*)ms13_1776a));
}
else{
_result_type=X54run_type(_result_type);
X54c_type_for_result_in(_result_type,oBC332c_code);
}
/*FI]*/
r7extend((T7*)(oBC332c_code),'\40');
r7extend((T7*)(oBC332c_code),'X');
r2append_in(X54id(/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/)),oBC332c_code);
X83mapping_c_in(/*X51name*/((T0*)(((T324*)a1))->_name/*16*/),oBC332c_code);
/*[IF*/
if(_boost){
r7append((T7*)(oBC332c_code),((T0*)ms332_8200));
}
else{
r7append((T7*)(oBC332c_code),((T0*)ms332_176736));
}
/*FI]*/
/*[IF*/
if((_arguments)!=((void*)(NULL))){
_i=1;
while (!((_i)>(/*(IRF4.6count*/(((T191*)((((T187*)_arguments))->_flat_list/*8*/)))->_upper/*12*//*)*/))) {
r7extend((T7*)(oBC332c_code),'\54');
_arg_type=X54run_type(r187type(((T187*)_arguments),_i));
X54c_type_for_argument_in(_arg_type,oBC332c_code);
r7append((T7*)(oBC332c_code),((T0*)ms332_264));
r2append_in(_i,oBC332c_code);
_i=(_i)+(1);
}
}
/*FI]*/
r7extend((T7*)(oBC332c_code),'\51');
r25put_c_heading((T25*)(oBC12cpp),oBC332c_code);
/*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
/*]*/
/*[IF*/
if((_result_type)!=((void*)(NULL))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC332c_code))))->_count)=(0);
/*]*/
X54c_type_for_result_in(_result_type,oBC332c_code);
r7extend((T7*)(oBC332c_code),'\40');
r7extend((T7*)(oBC332c_code),'R');
/*[IF*/
if(!(_boost)){
r7extend((T7*)(oBC332c_code),'\75');
X54c_initialize_in(_result_type,oBC332c_code);
}
/*FI]*/
r7append((T7*)(oBC332c_code),((T0*)ms13_144));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),oBC332c_code);
/*]*/
}
/*FI]*/
/*[IF*/
if(!(_boost)){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_20878));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_7912));
/*]*/
r328copy((T328*)(oBC332running),((T24*)(X54run_class(/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/))))->_running/*12*/);
r332sort_running(oBC332running);
/*[IF*/
if(_boost){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_5726));
/*]*/
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_9401));
/*]*/
}
/*FI]*/
/*[IF*/
if(r43all_check((T43*)(oBC12run_control))){
r332c_switch(a1);
}
else{
r332c_dicho(C,a1,1,((T328*)(oBC332running))->_upper/*8*/);
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
/*]*/
/*[IF*/
if(!(_boost)){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_10365));
/*]*/
}
/*FI]*/
/*[IF*/
if((_result_type)!=((void*)(NULL))){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_8364));
/*]*/
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
/*]*/
}
/*FI]*/
}
void r332c_dicho(int C,T0* a1,T2 a2,T2 a3){
T0* _dyn_rf=NULL;
T0* _dyn_rc=NULL;
T2 _m=0;
/*[IF*/
if((a2)==(a3)){
_dyn_rc=r328item((T328*)(oBC332running),a2);
_dyn_rf=r24dynamic(((T24*)_dyn_rc),a1);
r332tail_opening(X51result_type(a1),X51result_type(_dyn_rf));
r25push_switch((T25*)(oBC12cpp),_dyn_rf,a1);
X51mapping_c(_dyn_rf);
r25pop((T25*)(oBC12cpp));
r332tail_closing(X51result_type(a1),X51result_type(_dyn_rf));
}
else{
_m=((a2)+(a3))/(2);
_dyn_rc=r328item((T328*)(oBC332running),_m);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_6258));
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),(((T24*)_dyn_rc))->_id/*4*/);
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_540));
/*]*/
r332c_dicho(C,a1,a2,_m);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_4432));
/*]*/
r332c_dicho(C,a1,(_m)+(1),a3);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\175';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*No:SWITCH.fz_void*/
void r332put_arguments(T0* a1,T0* a2){
T2 _up=0;
T2 _i=0;
_i=1;
_up=/*(IRF4.6count*/(((T191*)((((T187*)a2))->_flat_list/*8*/)))->_upper/*12*//*)*/;
while (!((_i)>(_up))) {
/*[IF*/
if((_i)>(1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
r332put_ith_argument(a1,a2,_i);
_i=(_i)+(1);
}
}
T0*oBC332running=NULL;
void r332sort_running(T0* a1){
T6 _moved=0;
T2 _buble=0;
T2 _max=0;
T2 _min=0;
_max=(((T328*)a1))->_upper/*8*/;
_min=1;
_moved=1;
while (!(!(_moved))) {
_moved=0;
/*[IF*/
if(((_max)-(_min))>(0)){
_buble=(_min)+(1);
while (!((_buble)>(_max))) {
/*[IF*/
if((((T24*)(r328item(((T328*)a1),(_buble)-(1))))->_id/*4*/)>(((T24*)(r328item(((T328*)a1),_buble)))->_id/*4*/)){
r328swap(((T328*)a1),(_buble)-(1),_buble);
_moved=1;
}
/*FI]*/
_buble=(_buble)+(1);
}
_max=(_max)-(1);
}
/*FI]*/
/*[IF*/
if((_moved)&&(((_max)-(_min))>(0))){
_moved=0;
_buble=(_max)-(1);
while (!((_buble)<(_min))) {
/*[IF*/
if((((T24*)(r328item(((T328*)a1),_buble)))->_id/*4*/)>(((T24*)(r328item(((T328*)a1),(_buble)+(1))))->_id/*4*/)){
r328swap(((T328*)a1),_buble,(_buble)+(1));
_moved=1;
}
/*FI]*/
_buble=(_buble)-(1);
}
_min=(_min)+(1);
}
/*FI]*/
}
}
T0*oBC332c_code=NULL;
/*No:SWITCH.fz_00*/
void r332tail_opening(T0* a1,T0* a2){
/*[IF*/
if((a1)!=((void*)(NULL))){
r7copy((T7*)(oBC332c_code),((T0*)ms332_932));
X54c_type_for_result_in(a1,oBC332c_code);
r7append((T7*)(oBC332c_code),((T0*)ms332_168));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),oBC332c_code);
/*]*/
/*[IF*/
if((X54is_expanded(a2))&&(X54is_reference(a1))){
X54to_reference(a2);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
void r332tail_closing(T0* a1,T0* a2){
/*[IF*/
if((a1)!=((void*)(NULL))){
/*[IF*/
if((X54is_expanded(a2))&&(X54is_reference(a1))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_644));
/*]*/
}
/*FI]*/
}
/*No:SWITCH.fz_12*/
void r332put_ith_argument(T0* a1,T0* a2,T2 a3){
T0* _ft=NULL;
T0* _at=NULL;
T0* _eal=NULL;
_eal=X51arguments(a1);
_at=X54run_type(r187type(((T187*)_eal),a3));
_ft=X54run_type(r187type(((T187*)a2),a3));
/*[IF*/
if((X54is_reference(_at))&&(X54is_basic_eiffel_expanded(_ft))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
X54cast_to_ref(_ft);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='a';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a3);
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms332_9880));
/*]*/
}
else{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='a';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a3);
/*]*/
}
/*FI]*/
}
/*No:SWITCH.fz_15*/
/*No:SWITCH.fz_16*/
T0* r332name(T0* a1){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC332c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC332c_code),'X');
r2append_in(X54id(/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/)),oBC332c_code);
r7append((T7*)(oBC332c_code),X83to_key(/*X51name*/((T0*)(((T324*)a1))->_name/*16*/)));
R=oBC332c_code;
return R;
}
T0* r168type_boolean(void){
if(fBC12type_boolean==0){
fBC12type_boolean=1;
{T264*n=malloc(sizeof(*n));
*n=M264;
r264make(n,NULL);
oBC12type_boolean=(T0*)n;
}
}
return oBC12type_boolean;}
/*No:E_TRUE.static_value*/
/*No:E_TRUE.mapping_c_target*/
/*No:E_TRUE.is_static*/
/*No:E_TRUE.can_be_dropped*/
/*No:E_TRUE.is_manifest_string*/
/*No:E_TRUE.start_position*/
/*No:E_TRUE.c_simple*/
/*No:E_TRUE.c_declare_for_old*/
T0* r168add_comment(T168* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:E_TRUE.to_integer*/
/*No:E_TRUE.use_current*/
/*No:E_TRUE.dca_inline_argument*/
/*No:E_TRUE.compile_to_c*/
/*No:E_TRUE.to_runnable*/
T2 r168isa_dca_inline_argument(void){
T2 R=0;
/*[IF*/
{/*AT*/R=-(1);
}
/*FI]*/
return R;
}
/*No:E_TRUE.compile_to_c_old*/
/*No:E_TRUE.is_pre_computable*/
/*No:E_TRUE.collect_c_tmp*/
/*No:E_TRUE.fz_iinaiv*/
/*No:E_TRUE.result_type*/
void r168error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:E_TRUE.make*/
/*No:E_TRUE.is_current*/
/*No:E_TRUE.is_void*/
void r168mapping_c_arg(T0* a1){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.6to_reference*/{T264* C1=(T264*)(/*(IRF4.8result_type*/r168type_boolean()/*)*/);
r25to_reference((T25*)(oBC12cpp),(T0*)C1,r264type_boolean_ref());
}/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='1';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.2compile_to_c*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='1';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*]*/
}
/*FI]*/
}
/*No:E_TRUE.afd_check*/
/*No:E_TRUE.is_result*/
/*No:E_OLD.static_value*/
/*No:E_OLD.is_static*/
/*No:E_OLD.is_manifest_string*/
T0* r146start_position(T146* C){
T0* R=NULL;
R=X56start_position((C)->_expression/*4*/);
return R;
}
/*No:E_OLD.c_simple*/
T0* r146add_comment(T146* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r146to_integer(T146* C){
T2 R=0;
r146error(r146start_position(C),((T0*)ms13_45846));
return R;
}
T6 r146use_current(T146* C){
T6 R=0;
R=X56use_current((C)->_expression/*4*/);
return R;
}
T0* r146to_runnable(T146* C,T0* a1){
T0* R=NULL;
T0* _exp=NULL;
/*[IF*/
if(((C)->_current_type/*8*/)==((void*)(NULL))){
C->_current_type=a1;
_exp=X56to_runnable((C)->_expression/*4*/,a1);
/*[IF*/
if((_exp)==((void*)(NULL))){
r146error(r146start_position(C),((T0*)ms146_24605));
}
else{
C->_expression=_exp;
}
/*FI]*/
R=(T0*)C;
}
else{
{T146*n=malloc(sizeof(*n));
*n=M146;
/*[IRF3.3make*/((((T146*)(n)))->_expression)=((C)->_expression/*4*/);
/*]*/
R=(T0*)n;
}
R=r146to_runnable(((T146*)R),a1);
}
/*FI]*/
return R;
}
/*No:E_OLD.fz_00*/
void r146compile_to_c_old(T146* C){
T0* _t=NULL;
_t=X54run_type(r146result_type(C));
r7copy((T7*)(oBC146tmp_string),r146local_c_name(C));
r7extend((T7*)(oBC146tmp_string),'\75');
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),oBC146tmp_string);
/*]*/
X56mapping_c_arg((C)->_expression/*4*/,_t);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
/*]*/
}
/*No:E_OLD.is_pre_computable*/
/*No:E_OLD.collect_c_tmp*/
/*No:E_OLD.fz_iinaiv*/
T0* r146result_type(T146* C){
T0* R=NULL;
R=X56result_type((C)->_expression/*4*/);
return R;
}
T0* r146local_c_name(T146* C){
T0* R=NULL;
/*[IF*/
if(((C)->_local_c_name_memory/*12*/)==((void*)(NULL))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC146tmp_string))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC146tmp_string),'o');
r2append_in(((T63*)(r70base_class((T70*)(r146start_position(C)))))->_id/*0*/,oBC146tmp_string);
r7extend((T7*)(oBC146tmp_string),'\137');
r2append_in(/*(IRF4.6line*/(((T70*)(r146start_position(C)))->_mem_line_column/*4*/)/(1000)/*)*/,oBC146tmp_string);
r7extend((T7*)(oBC146tmp_string),'\137');
r2append_in(/*(IRF4.6column*/(((T70*)(r146start_position(C)))->_mem_line_column/*4*/)%(1000)/*)*/,oBC146tmp_string);
C->_local_c_name_memory=r7twin((T7*)(oBC146tmp_string));
}
/*FI]*/
R=(C)->_local_c_name_memory/*12*/;
return R;
}
/*No:E_OLD.is_result*/
/*No:E_OLD.mapping_c_target*/
/*No:E_OLD.can_be_dropped*/
void r146c_declare_for_old(T146* C){
T0* _name=NULL;
T0* _t=NULL;
_name=r146local_c_name(C);
_t=X54run_type(r146result_type(C));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC146tmp_string))))->_count)=(0);
/*]*/
X54c_type_for_argument_in(_t,oBC146tmp_string);
r7extend((T7*)(oBC146tmp_string),'\40');
r7append((T7*)(oBC146tmp_string),_name);
r7extend((T7*)(oBC146tmp_string),'\75');
X54c_initialize_in(_t,oBC146tmp_string);
r7append((T7*)(oBC146tmp_string),((T0*)ms13_144));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),oBC146tmp_string);
/*]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
r7append((T7*)(oBC12c_frame_descriptor_locals),((T0*)ms146_7479));
r7append((T7*)(oBC12c_frame_descriptor_locals),_name);
r7extend((T7*)(oBC12c_frame_descriptor_locals),'\54');
r204increment((T204*)(oBC12c_frame_descriptor_local_count));
r7append((T7*)(oBC12c_frame_descriptor_format),((T0*)ms146_16850));
X54c_frame_descriptor(_t);
}
/*FI]*/
}
/*No:E_OLD.expression*/
/*No:E_OLD.dca_inline_argument*/
/*No:E_OLD.compile_to_c*/
/*No:E_OLD.isa_dca_inline_argument*/
/*No:E_OLD.local_c_name_memory*/
/*No:E_OLD.current_type*/
void r146error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:E_OLD.make*/
/*No:E_OLD.is_current*/
/*No:E_OLD.mapping_c_arg*/
/*No:E_OLD.is_void*/
T0*oBC146tmp_string=NULL;
void r146afd_check(T146* C){
X56afd_check((C)->_expression/*4*/);
}
/*No:WRITABLE_ATTRIBUTE.base_class*/
T0* r314start_position(T314* C){
T0* R=NULL;
R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r314is_merge_with(T314* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X93result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X93arguments(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X54is_a_in((C)->_result_type/*20*/,X93result_type(a1),a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r187is_a_in((T187*)(/*(IRF4.1arguments*/NULL/*)*/),X93arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X54is_a_in(X93result_type(a1),(C)->_result_type/*20*/,a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r187is_a_in((T187*)(X93arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r314merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:WRITABLE_ATTRIBUTE.first_name*/
/*No:WRITABLE_ATTRIBUTE.em1*/
/*No:WRITABLE_ATTRIBUTE.set_isa_redefinition*/
/*No:WRITABLE_ATTRIBUTE.header_comment*/
/*No:WRITABLE_ATTRIBUTE.names*/
/*No:WRITABLE_ATTRIBUTE.result_type*/
/*No:WRITABLE_ATTRIBUTE.code_require*/
/*No:WRITABLE_ATTRIBUTE.make_e_feature*/
void r314add_into(T314* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
_fn=r85item((T85*)((C)->_names/*8*/),_i);
/*[IF*/
if(r92has(((T92*)a1),X83to_key(_fn))){
_fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
r21add_position(X83start_position(_fn));
r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
r21error((T21*)(oBC12eh),((T0*)ms93_41905));
/*[IRF3.6append*/{T0* b1=X83to_string(_fn);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
else{
r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r314can_hide(T314* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X93result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
r21add_position(X93start_position(a1));
r314error(r314start_position(C),((T0*)ms93_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X93arguments(a1)))){
/*[IF*/
{/*AT*/r21add_position(X93start_position(a1));
r314error(r314start_position(C),((T0*)ms93_83182));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(X54is_a_in((C)->_result_type/*20*/,X93result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21error((T21*)(oBC12eh),((T0*)ms13_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r314merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:WRITABLE_ATTRIBUTE.ensure_assertion*/
T0* r314try_to_undefine(T314* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r21add_position(X83start_position(a1));
_fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X83undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r314try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r314merge_header_comments(C,R);
}
else{
r63fatal_undefine(((T63*)a2),a1);
}
/*FI]*/
return R;
}
/*No:WRITABLE_ATTRIBUTE.is_deferred*/
/*No:WRITABLE_ATTRIBUTE.set_clients*/
/*No:WRITABLE_ATTRIBUTE.nb_errors*/
T0* r314to_run_feature(T314* C,T0* a1,T0* a2){
T0* R=NULL;
{T356*n=malloc(sizeof(*n));
*n=M356;
r356make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
void r314merge_header_comments(T314* C,T0* a1){
/*[IF*/
if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
}
else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X93set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:WRITABLE_ATTRIBUTE.arguments*/
/*No:WRITABLE_ATTRIBUTE.require_assertion*/
T0* r314try_to_undefine_aux(T314* C,T0* a1,T0* a2){
T0* R=NULL;
r21add_position(r314start_position(C));
r314error(X83start_position(a1),((T0*)ms201_99414));
r63fatal_undefine(((T63*)a2),a1);
return R;
}
/*No:WRITABLE_ATTRIBUTE.isa_redefinition*/
/*No:WRITABLE_ATTRIBUTE.fz_dot*/
T6 r314stupid_switch(T0* a1,T0* a2){
T6 R=0;
T0* _t=NULL;
T0* _dyn_rc=NULL;
T0* _dyn_rf2=NULL;
T2 _i=0;
T2 _offset2=0;
T2 _offset1=0;
_i=(((T328*)a2))->_upper/*8*/;
_dyn_rc=r328item(((T328*)a2),_i);
_dyn_rf2=r24dynamic(((T24*)_dyn_rc),a1);
if(NULL!=(_dyn_rf2))switch(((T0*)_dyn_rf2)->id) {
case 356:
break;
default:
_dyn_rf2=NULL;
};/*[IF*/
if((_dyn_rf2)!=((void*)(NULL))){
R=1;
_t=(((T356*)_dyn_rf2))->_result_type/*28*/;
/*[IF*/
if(X54is_native_array(_t)){
_t=r261first((T261*)(X54generic_list(_t)));
R=X54is_reference(_t);
}
/*FI]*/
_offset1=r24offset_of(((T24*)_dyn_rc),_dyn_rf2);
_i=(_i)-(1);
}
/*FI]*/
while (!((!(R))||((_i)==(0)))) {
_dyn_rc=r328item(((T328*)a2),_i);
_dyn_rf2=r24dynamic(((T24*)_dyn_rc),a1);
if(NULL!=(_dyn_rf2))switch(((T0*)_dyn_rf2)->id) {
case 356:
break;
default:
_dyn_rf2=NULL;
};/*[IF*/
if((_dyn_rf2)!=((void*)(NULL))){
_offset2=r24offset_of(((T24*)_dyn_rc),_dyn_rf2);
R=(_offset1)==(_offset2);
_i=(_i)-(1);
}
else{
R=0;
}
/*FI]*/
}
return R;
}
void r314error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r314make(T314* C,T0* a1,T0* a2){
/*[IRF3.3make_e_feature*/((((T314*)(C)))->_names)=(a1);
/*]*/
C->_result_type=a2;
}
void r314collect_for(T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=/*(IRF4.1require_assertion*/NULL/*)*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
r358add_last((T358*)(oBC93require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
}
/*No:WRITABLE_ATTRIBUTE.set_header_comment*/
/*No:WRITABLE_ATTRIBUTE.clients*/